﻿using System.Windows;
using System.Windows.Controls;

namespace TimeSpan.Interfaces;

public interface INavigationService {

    void SetNavigationFrame(Frame frame);

    void Navigate<T>() where T : Page;

    void Navigate<T>(object? data) where T : Page;

    void Navigate(Type pageType);

    void Navigate(Type pageType, object? data);

    Frame? GetNavigationFrame();

    /// <summary>本项目中没有实现标准的导航控件，所以使用此方法同步MainWindow中菜单项的变化</summary>
    Action<Type>? OnNavigated { get; set; }

    void NavigateDialog<T>() where T : Window;

}